package org.jeecg.modules.goods.goods.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 产品信息
 * @Author: jeecg-boot
 * @Date: 2025-06-07
 * @Version: V1.0
 */
@Data
@TableName("cg_goods")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Schema(description = "产品信息")
public class Goods {

    /** 主键id */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键id")
    private String id;
    /** 创建人 */
    @Excel(name = "创建人", width = 15)
    @Schema(description = "创建人")
    private String createBy;
    /** 创建时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private Date createTime;
    /** 更新人 */
    @Excel(name = "更新人", width = 15)
    @Schema(description = "更新人")
    private String updateBy;
    /** 更新时间 */
    @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间")
    private Date updateTime;
    /** 租户ID */
    @Excel(name = "租户ID", width = 15)
    @Schema(description = "租户ID")
    private Integer tenantId;
    /** 自定义编码 */
    @Excel(name = "自定义编码", width = 15)
    @Schema(description = "自定义编码")
    private String customizeCode;
    /** 产品编码 */
    @Excel(name = "产品编码", width = 15)
    @Schema(description = "产品编码")
    private String goodsCode;
    /** 产品名称 */
    @Excel(name = "产品名称", width = 15)
    @Schema(description = "产品名称")
    private String goodsName;
    /** 产品中文名称 */
    @Excel(name = "产品中文名称", width = 15)
    @Schema(description = "产品中文名称")
    private String goodsNameCn;
    /** 供应情况 */
    @Excel(name = "供应情况", width = 15)
    @Schema(description = "供应情况")
    private String supplySituation;
    /** 发货仓库 */
    @Excel(name = "发货仓库", width = 15)
    @Schema(description = "发货仓库")
    private String warehouseId;
    /** 采购人员 */
    @Excel(name = "采购人员", width = 15)
    @Schema(description = "采购人员")
    @Dict(dicCode = "id", dicText = "realname", dictTable = "sys_user")
    private String procurementPersonnel;
    /** 开发人员 */
    @Excel(name = "开发人员", width = 15)
    @Schema(description = "开发人员")
    @Dict(dicCode = "id", dicText = "realname", dictTable = "sys_user")
    private String developers;
    /** 负责人员 */
    @Excel(name = "负责人员", width = 15)
    @Schema(description = "负责人员")
    @Dict(dicCode = "id", dicText = "realname", dictTable = "sys_user")
    private String responsibleOfficer;
    /** 推荐指数 */
    @Excel(name = "推荐指数", width = 15)
    @Schema(description = "推荐指数")
    private String recommendIndex;
    /** 产品来源 */
    @Excel(name = "产品来源", width = 15)
    @Schema(description = "产品来源")
    private String goodsSource;
    /** 图片来源 */
    @Excel(name = "图片来源", width = 15)
    @Schema(description = "图片来源")
    private String picSource;
    /** 侵权授权json */
    @Excel(name = "侵权授权json", width = 15)
    @Schema(description = "侵权授权json")
    private String authorizationJson;
    /** 开发类型 */
    @Excel(name = "开发类型", width = 15)
    @Schema(description = "开发类型")
    private String developmentTtype;
    /** 精准关键词 */
    @Excel(name = "精准关键词", width = 15)
    @Schema(description = "精准关键词")
    private String keyWord;
    /** 产品物流属性 */
    @Excel(name = "产品物流属性", width = 15)
    @Schema(description = "产品物流属性")
    private String goodsLogistics;
    /** 产品单位 */
    @Excel(name = "产品单位", width = 15)
    @Schema(description = "产品单位")
    private String goodsUnit;
    /** 产品分类id */
    @Excel(name = "产品分类id", width = 15)
    @Schema(description = "产品分类id")
    private String categoryId;
    /** 产品品牌 */
    @Excel(name = "产品品牌", width = 15)
    @Schema(description = "产品品牌")
    @Dict(dicCode = "XFPP")
    private String goodsBrand;
    /** 产品分类全路径 */
    @Excel(name = "产品分类全路径", width = 15)
    @Schema(description = "产品分类全路径")
    private String categoryPath;
    /** 产品简介 */
    @Excel(name = "产品简介", width = 15)
    @Schema(description = "产品简介")
    private String goodsIntro;
    /** 产品描述 */
    @Excel(name = "产品描述", width = 15)
    @Schema(description = "产品描述")
    private String goodsDescribe;
    /** 产品封面图 */
    @Excel(name = "产品封面图", width = 40, type = 2)
    @Schema(description = "产品封面图")
    private String coverPic;
    /** 产品状态 */
    @Excel(name = "产品状态", width = 15)
    @Schema(description = "产品状态")
    private String goodsStatus;
    /** 产品信息（Json） */
    @Excel(name = "产品信息（Json）", width = 15)
    @Schema(description = "产品信息（Json）")
    private Object goodsInfo;

    /** 产品价格（Json） */
    @Excel(name = "产品价格（Json）", width = 15)
    @Schema(description = "产品价格（Json）")
    private Object goodsPrice;

    /** 产品销售价格（Json） */
    @Excel(name = "产品销售价格（Json）", width = 15)
    @Schema(description = "产品销售价格（Json）")
    private Object goodsSale;

    /** 产品英文资料（Json） */
    @Excel(name = "产品英文资料（Json）", width = 15)
    @Schema(description = "产品英文资料（Json）")
    private Object goodsEnglish;

    /** 产品发货（Json） */
    @Excel(name = "产品发货（Json）", width = 15)
    @Schema(description = "产品发货（Json）")
    private Object goodsDeliver;

    /** 产品图片（Json） */
    @Excel(name = "产品图片（Json）", width = 15)
    @Schema(description = "产品图片（Json）")
    private Object goodsPic;

    /** 产品视频（Json） */
    @Excel(name = "产品视频（Json）", width = 15)
    @Schema(description = "产品视频（Json）")
    private Object goodsVideo;

    /** 产品扩展 */
    @Excel(name = "产品扩展", width = 15)
    @Schema(description = "产品扩展")
    private Object goodsExtend;
    /** 备注 */
    @Excel(name = "备注", width = 15)
    @Schema(description = "备注")
    private String remark;
}
